<!DOCTYPE htm PUBLIC "-//W3C//DTD Xhtm 1.0 Transitional//EN" "DTD/xhtm1-transitional.dtd">
<htm xmlns="http://www.w3.org/1999/xhtm" xml:lang="de" lang="de">
<head>
 <meta http-equiv="content-type" content="text/htm; charset=iso-8859-1" />
 <meta http-equiv="content-style-type" content="text/css" />
 <meta name="author" content="Arlsair" />
 <meta name="date" content="2004-01-22" />
 <title>FluxSmooth</title>
 <link rel="stylesheet" type="text/css" href="../../style.css" />
</head><body>
<h1>FluxSmooth</h1>

<h2>&Uuml;bersicht</h2>
<b>Autor:</b> Ross Thomas (Sansgrip)<br />
<b>Version:</b> 1.01<br />
<b>Download:</b> <a href="http://www.avisynth.org/warpenterprises/" target="_blank">http://www.avisynth.org/warpenterprises/</a><br />
<b>Kategorie:</b> R&auml;umlich-Zeitlicher Weichzeichner<br />
<b>Anforderungen:</b>
<ul>
  <li>YV12 oder YUY2 Farbformat</li>
  <li>SSEMMX (=ISSE) f&auml;hige CPU</li>
</ul>

<hr size=2 width="100%" align=center>

<!-- #EndTemplate -->
<h2>Description</h2>
<p>One of the fundamental properties of noise is that it's random. One of the
fundamental properties of motion is that it's not. This is the premise behind
FluxSmooth, which examines each pixel and compares it to the corresponding pixel
in the previous and last frame. Smoothing occurs if both the previous frame's
value and the next frame's value are greater, or if both are less, than the
value in the current frame.</p>
<p>I like to call this a &quot;fluctuating&quot; pixel, then I like to wipe that
pixel from existence by averaging it with its neighbours. This is (by default)
done in a spatio-temporal manner, in that for each fluctuating pixel its 8
immediate spatial neighbours as well as its 2 temporal neighbours (the
abovementioned corresponding pixel from the previous and next frames) are
considered for inclusion in the average. If the value of each pixel is within
the specified threshold, it is included. If not, it isn't.</p>
<p>This filter seems to remove almost all noise from low-noise sources (such as
DVD) and a lot of noise from high-noise sources (such as cable TV captures),
while maintaining a good amount of detail.</p>
<p>If your CPU supports integer SSE operations (Intel Pentium III and better,
AMD Athlon and better) an optimized version of the algorithm will be used.</p>
<h2>Usage</h2>
<blockquote>
  <p>FluxSmooth([clip], int <i>temporal_threshold</i>, int <i>spatial_threshold</i>)</p>
</blockquote>
<table border="1">
  <tbody>
    <tr>
      <th>Parameter</th>
      <th>Meaning</th>
      <th>Default</th>
    </tr>
    <tr>
      <td><i>temporal_threshold</i></td>
      <td>
        <p>Temporal neighbour pixels within this threshold from the current
        pixel are included in the average.</p>
        <p>If set to -1, no temporal smoothing occurs.</p>
      </td>
      <td>7</td>
    </tr>
    <tr>
      <td><i>spatial_threshold</i></td>
      <td>
        <p>Spatial neighbour pixels within this threshold from the current pixel
        are included in the average.</p>
        <p>If set to -1, no spatial smoothing occurs.</p>
      </td>
      <td>7</td>
    </tr>
  </tbody>
</table>
<h2>Known Issues</h2>
<ul>
  <li>The very edges of the frame are unprocessed.
  <li>The very first and very last frame of a clip is unprocessed.
  <li>Appears to cause an access violation when used with n-pass encoding in
    CCE. Since I don't have CCE I can't duplicate it... Any help in this regard
    would be appreciated.</li>
</ul>
</body>
</html>
